﻿<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>系统网关监控大屏</title>
    <link rel="stylesheet" href="./css/index.css">
    <link rel="stylesheet" href="./fonts/icomoon.css">
</head>

<body>

    <!--监控告警标题-->
    <div class="authBody" style="min-height:55px;height: 55px;background-color: rgba(255, 255, 255, 0)">
        <div class="head_text">
            <div style="font-size:20px;padding:6px;">API 监控告警大屏</div>
            <div>Api Police</div>
        </div>
    </div>

    <!--提示语-->
    <div id="msgDialog" class="authBody" style="z-index: 19891023;display:none;background-color: rgba(255, 255, 255, 0)">
        <div style="top:100px;height:36px;width: auto;background-color:red;" class="signal-loader">
            <div style="color:#fff;font-size:20px;padding:6px;" id="msg"></div>
        </div>
    </div>

    <!--等待对话框-->
    <div id="loading" class="authBody" style="z-index: 19891024;display: none;">
        <div class="signal-loader">
            <span></span><span></span><span></span><span></span>
        </div>
    </div>

    <!--密码认证-->
    <div id="authBody" class="authBody" style="display: none;">
        <div class="inputBox">
            <input type="password" required="required" id="password">
            <span>输入认证密码,enter键确认</span>
            <i></i>
        </div>
    </div>

    <!--报表-->
    <div id="viewport" class="viewport">
        <div class="column">
            <!--概览-->
            <div class="overview panel">
                <div class="inner">
                    <div class="item">
                        <h4 id="pv">0</h4>
                        <span><i class="icon-dot" style="color: #006cff"></i>今日pv</span>
                    </div>
                    <div class="item">
                        <h4 id="uv">0</h4>
                        <span><i class="icon-dot" style="color: #6acca3"></i>今日uv</span>
                    </div>
                    <div class="item">
                        <h4 id="errorCount">0</h4>
                        <span><i class="icon-dot" style="color: #6acca3"></i>错误数</span>
                    </div>
                    <div class="item">
                        <h4 id="bizErrorCount">0</h4>
                        <span><i class="icon-dot" style="color: #6acca3"></i>业务异常</span>
                    </div>
                    <div class="item">
                        <h4 id="alarmCount">0</h4>
                        <span><i class="icon-dot" style="color: #ed3f35"></i>告警次数</span>
                    </div>
                </div>
            </div>
            <!--监控-->
            <div class="monitor panel">
                <div class="inner">
                    <div class="tabs">
                        <a href="javascript:;" data-index="0" class="active">异常告警</a>
                        <a href="javascript:;" data-index="1">今日耗时接口top10</a>
                    </div>
                    <div class="content" style="display: block;">
                        <div class="head">
                            <span class="col">时间</span>
                            <span class="col">异常信息</span>
                            <span class="col">持续时间</span>
                        </div>
                        <div class="marquee-view">
                            <div class="marquee" id="alarmList">
                                <!--<div class="row">
                                    <span class="col">20180701</span>
                                    <span class="col">176.27.34.87(湖北武汉)</span>
                                    <span class="col">2000</span>
                                    <span class="icon-dot"></span>
                                </div>-->
                            </div>
                        </div>
                    </div>
                    <div class="content">
                        <div class="head">
                            <span class="col">接口路径</span>
                            <span class="col">平均耗时</span>
                        </div>
                        <div class="marquee-view">
                            <div class="marquee" id="pathTime">
                                <!--<div class="row">
                                    <span class="col">20180701</span>
                                    <span class="col">2000</span>
                                    <span class="icon-dot"></span>
                                </div>-->
                            </div>
                        </div>
                    </div>
                </div>
            </div>
            <!--点位-->
            <div class="point panel">
                <div class="inner">
                    <h3>今日状态码</h3>
                    <div class="chart">
                        <div class="pie" id="httpCode"></div>
                        <div class="data">
                            <div class="item">
                                <h4 id="httpCodeErrorCount">0</h4>
                                <span><i class="icon-dot" style="color: #ed3f35"></i>错误数</span>
                            </div>
                            <div class="item">
                                <h4 id="httpCodeErrorRate">0%</h4>
                                <span><i class="icon-dot" style="color: #eacf19"></i>错误占比</span>
                            </div>
                        </div>
                    </div>
                </div>
            </div>
        </div>
        <div class="column">
            <!-- 地图 -->
            <div class="map">
                <h3><span class="icon-cube"></span>今日访问统计秒级更新</h3>
                <div class="chart">
                    <div class="geo" id="main"></div>
                </div>
            </div>
            <!-- 用户 -->
            <div class="users panel">
                <div class="inner">
                    <h3>今日热门接口top10</h3>
                    <div class="chart">
                        <div class="bar" id="path"></div>
                        <div class="data">
                            <div class="item">
                                <h4 id="responseSize">0</h4>
                                <span><i class="icon-dot" style="color: #ed3f35"></i>接口流量</span>
                            </div>
                            <div class="item">
                                <h4 id="pathCount">0</h4>
                                <span><i class="icon-dot" style="color: #eacf19"></i>总接口数</span>
                            </div>
                        </div>
                    </div>
                </div>
            </div>
        </div>
        <div class="column">
            <!-- 订单 -->
            <div class="order panel">
                <div class="inner">
                    <!-- 筛选 -->
                    <div class="filter">
                        <a href="javascript:;" data-key="day30" class="active">30天</a>
                        <a href="javascript:;" data-key="day7">7天</a>
                        <a href="javascript:;" data-key="day1">昨天</a>
                    </div>
                    <!-- 数据 -->
                    <div class="data">
                        <div class="item">
                            <h4>0</h4>
                            <span>
                                <i class="icon-dot" style="color: #ed3f35;"></i>
                                请求pv
                            </span>
                        </div>
                        <div class="item">
                            <h4>0</h4>
                            <span>
                                <i class="icon-dot" style="color: #eacf19;"></i>
                                请求uv
                            </span>
                        </div>
                    </div>
                </div>
            </div>
            <!-- 销售额 -->
            <div class="sales panel">
                <div class="inner">
                    <div class="caption">
                        <h3>请求趋势</h3>
                        <a href="javascript:;" class="active" data-type="month">30天</a>
                        <a href="javascript:;" data-type="week">7天</a>
                    </div>
                    <div class="chart">
                        <div class="label">单位:次</div>
                        <div class="line"></div>
                    </div>
                </div>
            </div>
            <!-- 渠道 季度 -->
            <div class="wrap">
                <div class="channel panel">
                    <div class="inner">
                        <h3>今日浏览器类型</h3>
                        <div class="data">
                            <div class="item" id="browserTop1">
                                <h4>0 <small>%</small></h4>
                                <span>
                                    chrome
                                </span>
                            </div>
                            <div class="item" id="browserTop2">
                                <h4>0 <small>%</small></h4>
                                <span>
                                </span>
                            </div>
                        </div>
                        <div class="data">
                            <div class="item" id="browserTop3">
                                <h4>0 <small>%</small></h4>
                                <span>
                                </span>
                            </div>
                            <div class="item" id="browserTop4">
                                <h4>0 <small>%</small></h4>
                                <span>
                                </span>
                            </div>
                        </div>
                    </div>
                </div>
                <div class="quarter panel">
                    <div class="inner">
                        <h3>今日移动端占比</h3>
                        <div class="chart">
                            <div class="box">
                                <div class="gauge"></div>
                                <div class="label" id="mobileRate">0<small> %</small></div>
                            </div>
                            <div class="data">
                                <div class="item">
                                    <h4 id="mobileCount">0</h4>
                                    <span>
                                        <i class="icon-dot" style="color: #ed3f35"></i>
                                        移动端
                                    </span>
                                </div>
                                <div class="item">
                                    <h4 id="allCountPv">0</h4>
                                    <span>
                                        <i class="icon-dot" style="color: #6acca3"></i>
                                        pc端
                                    </span>
                                </div>
                            </div>
                        </div>
                    </div>
                </div>
            </div>
            <!-- 排行榜 -->
            <div class="top panel">
                <div class="inner">
                    <div class="all">
                        <h3>最多访问国家</h3>
                        <ul>
                            <li>
                                <i class="icon-cup1" style="color: #d93f36;"></i>
                                <span id="countryTop1">暂无</span>
                            </li>
                            <li>
                                <i class="icon-cup2" style="color: #68d8fe;"></i>
                                <span id="countryTop2">暂无</span>
                            </li>
                            <li>
                                <i class="icon-cup3" style="color: #4c9bfd;"></i>
                                <span id="countryTop3">暂无</span>
                            </li>
                        </ul>
                    </div>
                    <div class="province">
                        <h3>最多访问省份 <i class="date">城市 // 今天 //</i></h3>
                        <div class="data">
                            <ul class="sup" id="provinceTop">
                                <!--<li><span>北京</span><span>25,179 <s class="icon-up"></s></span></li>
                                <li><span>河北</span><span>23,252 <s class="icon-down"></s></span></li>-->
                            </ul>
                            <ul class="sub" id="cityTop">
                                <!--<li><span>数据</span><span> 数据<s class="icon-up"></s></span></li>-->
                            </ul>
                        </div>
                    </div>
                </div>
            </div>
        </div>
    </div>
</body>
<script src="./js/jquery.min.js"></script>
<script src="./js/echarts.min.js"></script>
<script src="./js/index.js"></script>

<script src="./js/md5.js"></script>
<script src="./js/main.js"></script>

<script type="text/javascript" src="./js/world_new.js"></script>

<script>
    var passwordDom = $("#password");
    var passwordMd5 = "";
    var pvDom = $("#pv");
    var uvDom = $("#uv");
    var errorCountDom = $("#errorCount");
    var bizErrorCountDom = $("#bizErrorCount");
    var alarmCountDom = $("#alarmCount");

    // httpcode 饼状图 位置错误个数
    var httpCodeErrorCountDom = $("#httpCodeErrorCount");
    var httpCodeErrorRateDom = $("#httpCodeErrorRate");

    // 请求路径
    var responseSizeDom = $("#responseSize");
    var pathCountDom = $("#pathCount");

    // 移动占比
    var allCountPvDom = $("#allCountPv");
    var mobileCountDom = $("#mobileCount");
    var mobileRateDom = $("#mobileRate");

    // 请求耗时
    var pathTimeDom = $("#pathTime");

    // pv uv
    var dayBefore1PvUv = {pv:0,uv:0};
    var dayBefore7PvUv = {pv:0,uv:0};
    var dayBefore30PvUv = {pv:0,uv:0};
    var weekBeforeLine = [[],[],[]];
    var monthBeforeLine = [[],[],[]];

    // 国家、省、市
    var countryTop1Dom = $("#countryTop1");
    var countryTop2Dom = $("#countryTop2");
    var countryTop3Dom = $("#countryTop3");
    var provinceTopDom = $("#provinceTop");
    var cityTopDom = $("#cityTop");

    // 攻击列表
    var alarmListDom = $("#alarmList");

    // 初始化
    function initData() {
        wait();
        var passwordKey = "monitorPasswordMd5"
        passwordMd5 = sessionStorage.getItem(passwordKey);
        if(!passwordMd5) {
            if(!passwordDom.val()) {
                hide();
                msg("请输入密码");
                showAuth();
                passwordDom.focus();
                return;
            }
            passwordMd5 = md5(passwordDom.val());
            sessionStorage.setItem(passwordKey,passwordMd5);
        }

        var needNewPvTime;
        var getDataInterval = setInterval(function() {
            var timestamp = new Date().getTime();
            var token = md5(timestamp+passwordMd5);

            // 获取pvuv曲线
            if((!needNewPvTime) || timestamp > needNewPvTime.getTime()) {
                $.get("./pvUv.json?timestamp="+timestamp+"&token="+token,function(data,status) {
                    if(data.code == 0) {
                        needNewPvTime = new Date(new Date().setHours(23, 59, 59, 999) +10000);
                        resetPvUvHistory(data.result);
                    }
                    else {
                        msg(data.msg);
                    }
                });
            }


            $.get("./statistics.json?timestamp="+timestamp+"&token="+token,function(data,status) {
                hide();
                if(data.code == 401) {
                    showAuth();
                    msg(data.msg);
                    clearInterval(getDataInterval);
                    sessionStorage.removeItem(passwordKey);
                    passwordDom.focus();
                    return;
                }
                else if(data.code != 0) {
                    msg(data.msg);
                    clearInterval(getDataInterval);
                    sessionStorage.removeItem(passwordKey);
                    passwordDom.focus();
                    return;
                }
                $("#authBody").hide();

                var result = data.result;
                resetStatistics(result.statistics);
                httpCode(result.httpStatusList);
                path(result.pathCountTop10);
                resetBrowserTop(result.browserTop4,result.statistics.pv);
                resetPathTimeTop(result.pathTimeTop10);


                resetCountryTop(result.countryTop);
                resetProvinceTop(result.provinceTop5);
                resetCityTop(result.cityTop);
                worldMap(result.cityTop.concat(result.countryTop));
                // 攻击列表
                resetAlarmList(result.excepInfoList);
                if(result.warning) {
                    warn(result.warningMsg);
                }
                else {
                    stopWarn();
                }
            });
        }, 1000);

    }

    // 告警列表
    function resetAlarmList(excepInfoList) {
        var html = "";
        for(var i=0;i<excepInfoList.length;i++) {
            var time = excepInfoList[i].time;
            var timeStr = time.substr(8,2)+":"+time.substr(10,2)+":"+time.substr(12,2);
            html += "<div class=\"row\">\n" +
                "        <span class=\"col\">"+timeStr+"</span>\n" +
                "        <span class=\"col\">"+excepInfoList[i].message+"</span>\n" +
                "        <span class=\"col\">"+excepInfoList[i].duration+"秒</span>\n" +
                "        <span class=\"icon-dot\"></span>\n" +
                "     </div>";
        }
        alarmListDom.html(html);

    }

    // pv uv
    function resetPvUvHistory(pvUvDay30) {
        var length = pvUvDay30.length;
        for(var i=0;i<length;i++) {
            if(i < 1) {
                dayBefore1PvUv.pv = dayBefore1PvUv.pv+pvUvDay30[length-i-1].pv;
                dayBefore1PvUv.uv = dayBefore1PvUv.uv+pvUvDay30[length-i-1].uv;
            }
            if(i < 7) {
                dayBefore7PvUv.pv = dayBefore7PvUv.pv+pvUvDay30[length-i-1].pv;
                dayBefore7PvUv.uv = dayBefore7PvUv.uv+pvUvDay30[length-i-1].uv;
                weekBeforeLine[0][i] = pvUvDay30[length-i-1].pv;
                weekBeforeLine[1][i] = pvUvDay30[length-i-1].uv;
                weekBeforeLine[2][i] = pvUvDay30[length-i-1].date.substr(4,4);
            }
            if(i < 30) {
                dayBefore30PvUv.pv = dayBefore30PvUv.pv+pvUvDay30[length-i-1].pv;
                dayBefore30PvUv.uv = dayBefore30PvUv.uv+pvUvDay30[length-i-1].uv;
                monthBeforeLine[0][i] = pvUvDay30[length-i-1].pv;
                monthBeforeLine[1][i] = pvUvDay30[length-i-1].uv;
                monthBeforeLine[2][i] = pvUvDay30[length-i-1].date.substr(4,4);
            }
        }
        weekBeforeLine[0].reverse();
        weekBeforeLine[1].reverse();
        weekBeforeLine[2].reverse();

        monthBeforeLine[0].reverse();
        monthBeforeLine[1].reverse();
        monthBeforeLine[2].reverse();

    }

    function resetCountryTop(countryTop) {
        var length = countryTop.length;
        if(length > 0) {
            countryTop1Dom.html(countryTop[0].name);
        }
        else {
            countryTop1Dom.html("暂无");
        }
        if(length > 1) {
            countryTop2Dom.html(countryTop[1].name);
        }
        else {
            countryTop2Dom.html("暂无");
        }
        if(length > 2) {
            countryTop3Dom.html(countryTop[2].name);
        }
        else {
            countryTop3Dom.html("暂无");
        }
    }

    // top 省份
    function resetProvinceTop(provinceTop) {
        var html = "";
        for(var i=0;i<provinceTop.length;i++) {
            html += '<li><span>'+provinceTop[i].name+'</span><span>'+provinceTop[i].count+'</span></li>';
        }
        provinceTopDom.html(html);
    }

    // top 城市
    function resetCityTop(cityTop) {
        var html = "";
        for(var i=0;i<cityTop.length && i<6;i++) {
            html += '<li><span>'+cityTop[i].name+'</span><span>'+cityTop[i].count+'</span></li>';
        }
        cityTopDom.html(html);

    }

    // 路径平均耗时
    function resetPathTimeTop(pathTimeTopN) {
        var html = "";
        for(var i=0;i<pathTimeTopN.length;i++) {
            html += '<div class="row">\n' +
                '        <span class="col">'+pathTimeTopN[i].path+'</span>\n' +
                '        <span class="col">'+pathTimeTopN[i].timeAvg+'毫秒</span>\n' +
                '        <span class="icon-dot"></span>\n' +
                '    </div>';
        }
        pathTimeDom.html(html);
    }


    // 重置统计数据
    function resetBrowserTop(browserTop4,pv) {
        for(var i=0;i<browserTop4.length;i++) {
            $("#browserTop"+(i+1)).html("<h4>"+(100*browserTop4[i].count/pv).toFixed(0)+" <small>%</small></h4><span>"+browserTop4[i].name+"</span>");
        }
    }

    // 重置统计数据
    function resetStatistics(statistics) {
        pvDom.html(statistics.pv);
        uvDom.html(statistics.uv);
        errorCountDom.html(statistics.exceptionCount);
        bizErrorCountDom.html(statistics.bizErrorCount);
        alarmCountDom.html(statistics.alarmCount);

        // httpcode 饼状图 位置错误个数
        httpCodeErrorCountDom.html(statistics.exceptionCount);
        httpCodeErrorRateDom.html((100*statistics.exceptionCount/statistics.pv).toFixed(4)+"%");

        // 请求路径
        var responseSizeText;
        var responseSize = statistics.flowSum;
        if(responseSize > 1024) {
            responseSize = responseSize/1024;
            responseSizeText = responseSize.toFixed(2)+"KB";
        }
        if(responseSize > 1024) {
            responseSize = responseSize/1024;
            responseSizeText = responseSize.toFixed(2)+"MB";
        }
        if(responseSize > 1024) {
            responseSize = responseSize/1024;
            responseSizeText = responseSize.toFixed(2)+"GB";
        }
        responseSizeDom.html(responseSizeText);
        pathCountDom.html(statistics.pathCount);

        // 移动端占比
        allCountPvDom.html(statistics.pv);
        mobileCountDom.html(statistics.mobileCount);
        var mobileRate = (100*statistics.mobileCount/statistics.pv).toFixed(0);
        mobileRateDom.html(mobileRate+"<small> %</small>");
        mobileChart(mobileRate)
    }



    var geoCoordMap = {
        // 中国
        '北京':[116.46,39.92],
        '上海':[121.48,31.22],
        '天津':[117.2,39.13],
        '重庆':[106.54,29.59],
        '台湾':[121.5,25.14],
        // 香港
        '香港特别行政区':[114.1,22.2],
        // 澳门
        '澳门特别行政区':[113.33,22.13],
        // 西藏
        '西藏自治区':[91.11,29.97],
        '拉萨':[91.132212,29.660361],
        '阿里地区':[80.105498,32.503187],
        '山南':[91.766529,29.236023],
        '昌都':[97.178452,31.136875],
        '日喀则':[88.885148,29.267519],
        '那曲':[92.060214,31.476004],
        '林芝':[94.362348,29.654693],
        // 新疆
        '新疆维吾尔自治区':[87.68,43.77],
        '乌鲁木齐':[87.617733,43.792818],
        '克拉玛依':[84.873946,45.595886],
        '吐鲁番':[89.184078,42.947613],
        '哈密':[93.51316,42.833248],
        '昌吉回族自治州':[87.304012,44.014577],
        '博尔塔拉蒙古自治州':[82.074778,44.903258],
        '巴音郭楞蒙古自治州':[86.150969,41.768552],
        '阿克苏地区':[80.265068,41.170712],
        '克孜勒苏柯尔克孜自治州':[76.172825,39.713431],
        '喀什地区':[75.989138,39.467664],
        '和田地区':[79.92533,37.110687],
        '伊犁哈萨克自治州':[81.317946,43.92186],
        '塔城地区':[82.985732,46.746301],
        '阿勒泰地区':[88.13963,47.848393],
        '石河子':[86.041075,44.305886],
        '阿拉尔':[81.285884,40.541914],
        '图木舒克':[79.077978,39.867316],
        '五家渠':[87.526884,44.167401],
        '北屯':[87.824932,47.353177],
        '铁门关':[85.501218,41.827251],
        '双河':[82.353656,44.840524],
        '可克达拉':[80.63579,43.6832],
        '昆玉':[79.287372,37.207994],
        '胡杨河':[84.8275959,44.69288853],
        // 广西
        '广西壮族自治区':[108.33,22.84],
        '南宁':[108.320004,22.82402],
        '柳州':[109.411703,24.314617],
        '桂林':[110.299121,25.274215],
        '梧州':[111.297604,23.474803],
        '北海':[109.119254,21.473343],
        '防城港':[108.345478,21.614631],
        '钦州':[108.624175,21.967127],
        '贵港':[109.602146,23.0936],
        '玉林':[110.154393,22.63136],
        '百色':[106.616285,23.897742],
        '贺州':[111.552056,24.414141],
        '河池':[108.062105,24.695899],
        '来宾':[109.229772,23.733766],
        '崇左':[107.353926,22.404108],
        // 宁夏
        '宁夏回族自治区':[106.27,38.47],
        '银川':[106.27,38.47],
        '石嘴山':[106.39,39.04],
        '吴忠':[106.21,37.99],
        '固原':[106.28,36.01],
        '中卫':[105.18,37.51],
        '内蒙古':[111.65,40.82],
        '赤峰':[118.956806,42.275317],
        '呼伦贝尔':[119.758168,49.215333],
        '呼和浩特':[122.070317,46.076268],
        '包头':[109.840405,40.658168],
        '乌海':[106.825563,39.673734],
        '通辽':[122.263119,43.617429],
        '鄂尔多斯':[109.99029,39.817179],
        '巴彦淖尔':[107.416959,40.757402],
        '乌兰察布':[113.114543,41.034126],
        '锡林郭勒盟':[116.090996,43.944018],
        '阿拉善盟':[105.706422,38.844814],
        // 甘肃
        '甘肃省':[103.73,36.03],
        '兰州':[103.823557,36.058039],
        '临夏回族自治州':[103.212006,35.599446],
        '金昌':[102.187888,38.514238],
        '张掖':[100.455472,38.932897],
        '酒泉':[98.510795,39.744023],
        '定西':[104.626294,35.579578],
        '甘南藏族自治州':[102.911008,34.986354],
        '白银':[104.173606,36.54568],
        '陇南':[104.929379,33.388598],
        '天水':[105.724998,34.578529],
        '庆阳':[107.638372,35.734218],
        '嘉峪关':[98.277304,39.786529],
        '武威':[102.634697,37.929996],
        '平凉':[106.684691,35.54279],
        // 陕西
        '陕西省':[108.95,34.27],
        '西安':[108.948024,34.263161],
        '汉中':[107.028621,33.077668],
        '咸阳':[108.705117,34.333439],
        '榆林':[109.741193,38.290162],
        '安康':[109.029273,32.6903],
        '延安':[109.49081,36.596537],
        '宝鸡':[107.14487,34.369315],
        '商洛':[109.939776,33.868319],
        '渭南':[109.502882,34.499381],
        '铜川':[108.979608,34.916582],
        // 四川
        '四川省':[104.06,30.67],
        '成都':[104.065735,30.659462],
        '自贡':[104.773447,29.352765],
        '攀枝花':[101.716007,26.580446],
        '泸州':[105.443348,28.889138],
        '德阳':[104.398651,31.127991],
        '绵阳':[104.741722,31.46402],
        '广元':[105.829757,32.433668],
        '遂宁':[105.571331,30.513311],
        '内江':[105.066138,29.58708],
        '乐山':[103.761263,29.582024],
        '南充':[106.082974,30.795281],
        '眉山':[103.831788,30.048318],
        '宜宾':[104.630825,28.760189],
        '广安':[106.633369,30.456398],
        '达州':[107.502262,31.209484],
        '雅安':[103.001033,29.987722],
        '巴中':[106.753669,31.858809],
        '资阳':[104.641917,30.122211],
        '阿坝藏族羌族自治州':[102.221374,31.899792],
        '甘孜藏族自治州':[101.963815,30.050663],
        '凉山彝族自治州':[102.258746,27.886762],
        // 河南
        '河南省':[113.65,34.76],
        '郑州':[113.665412,34.757975],
        '开封':[114.341447,34.797049],
        '洛阳':[112.434468,34.663041],
        '平顶山':[113.307718,33.735241],
        '安阳':[114.352482,36.103442],
        '鹤壁':[114.295444,35.748236],
        '新乡':[113.883991,35.302616],
        '焦作':[113.238266,35.23904],
        '濮阳':[115.041299,35.768234],
        '许昌':[113.826063,34.022956],
        '漯河':[114.026405,33.575855],
        '三门峡':[111.194099,34.777338],
        '南阳':[112.540918,32.999082],
        '商丘':[115.650497,34.437054],
        '信阳':[114.075031,32.123274],
        '周口':[114.649653,33.620357],
        '驻马店':[114.024736,32.980169],
        '济源':[112.590047,35.090378],
        // 吉林
        '吉林省':[125.35,43.88],
        '长春':[125.3245,43.886841],
        '吉林':[126.55302,43.843577],
        '四平':[124.370785,43.170344],
        '辽源':[125.145349,42.902692],
        '通化':[125.936501,41.721177],
        '白山':[126.427839,41.942505],
        '松原':[124.823608,45.118243],
        '白城':[122.841114,45.619026],
        '延边朝鲜族自治州':[129.513228,42.904823],
        // 浙江
        '浙江省':[120.19,30.26],
        '杭州':[120.153576,30.287459],
        '宁波':[121.549792,29.868388],
        '温州':[120.672111,28.000575],
        '嘉兴':[120.750865,30.762653],
        '湖州':[120.102398,30.867198],
        '绍兴':[120.582112,29.997117],
        '金华':[119.649506,29.089524],
        '衢州':[118.87263,28.941708],
        '舟山':[122.106863,30.016028],
        '台州':[121.428599,28.661378],
        '丽水':[119.921786,28.451993],
        // 江西
        '江西省':[115.89,28.68],
        '南昌':[115.892151,28.676493],
        '景德镇':[117.214664,29.29256],
        '萍乡':[113.852186,27.622946],
        '九江':[115.992811,29.712034],
        '新余':[114.930835,27.810834],
        '鹰潭':[117.033838,28.238638],
        '赣州':[114.940278,25.85097],
        '吉安':[114.986373,27.111699],
        '宜春':[114.391136,27.8043],
        '抚州':[116.358351,27.98385],
        '上饶':[117.971185,28.44442],
        // 湖北
        '湖北省':[114.31,30.52],
        '武汉':[114.298572,30.584355],
        '宜昌':[111.290843,30.702636],
        '黄石':[115.077048,30.220074],
        '十堰':[110.787916,32.646907],
        '襄阳':[112.144146,32.042426],
        '鄂州':[114.890593,30.396536],
        '荆门':[112.204251,31.03542],
        '孝感':[113.926655,30.926423],
        '荆州':[112.23813,30.326857],
        '黄冈':[114.879365,30.447711],
        '咸宁':[114.328963,29.832798],
        '随州':[113.37377,31.717497],
        '仙桃':[113.453974,30.364953],
        '潜江':[112.896866,30.421215],
        '天门':[113.165862,30.653061],
        '恩施土家族苗族自治州':[109.486998,31.14],
        '神农架林区':[110.671525,31.74444],
        // 广东
        '广东省':[113.23,23.16],
        '广州':[113.280637,23.125178],
        '韶关':[113.591544,24.801322],
        '深圳':[114.085947,22.547],
        '珠海':[113.553986,22.224979],
        '汕头':[116.708463,23.37102],
        '佛山':[113.122717,23.028762],
        '江门':[113.094942,22.590431],
        '湛江':[110.364977,21.274898],
        '茂名':[110.919229,21.659751],
        '肇庆':[112.472529,23.051546],
        '惠州':[114.412599,23.079404],
        '梅州':[116.117582,24.299112],
        '汕尾':[115.364238,22.774485],
        '河源':[114.697802,23.746266],
        '阳江':[111.975107,21.859222],
        '清远':[113.051227,23.685022],
        '东莞':[113.746262,23.046237],
        '中山':[113.382391,22.521113],
        '潮州':[116.632301,23.661701],
        '揭阳':[116.355733,23.543778],
        '云浮':[112.044439,22.929801],
        // 贵州
        '贵州省':[106.71,26.57],
        '贵阳':[106.713478,26.578343],
        '遵义':[106.937265,27.706626],
        '六盘水':[104.846743,26.584643],
        '安顺':[105.932188,26.245544],
        '毕节':[105.28501,27.301693],
        '铜仁':[109.191555,27.718346],
        '黔西南布依族苗族自治州':[104.897971,25.08812],
        '黔东南苗族侗族自治州':[107.977488,26.583352],
        '黔南布依族苗族自治州':[107.517156,26.258219],
        // 青海
        '青海省':[101.74,36.56],
        '西宁':[101.778916,36.623178],
        '海东':[102.10327,36.502916],
        '海北藏族自治州':[100.901059,36.959435],
        '黄南藏族自治州':[102.019988,35.517744],
        '海南藏族自治州':[100.619542,36.280353],
        '果洛藏族自治州':[100.242143,34.4736],
        '玉树藏族自治州':[97.008522,33.004049],
        '海西蒙古族藏族自治州':[97.370785,37.374663],
        // 辽宁
        '辽宁省':[123.38,41.8],
        '沈阳':[123.429096,41.796767],
        '大连':[121.618622,38.91459],
        '鞍山':[122.995632,41.110626],
        '抚顺':[123.921109,41.875956],
        '本溪':[123.770519,41.297909],
        '丹东':[124.383044,40.124296],
        '锦州':[121.135742,41.119269],
        '营口':[122.235151,40.667432],
        '阜新':[121.648962,42.011796],
        '辽阳':[123.18152,41.269402],
        '盘锦':[122.06957,41.124484],
        '铁岭':[123.844279,42.290585],
        '朝阳':[120.451176,41.576758],
        '葫芦岛':[120.856394,40.755572],
        // 江苏
        '江苏省':[118.78,32.04],
        '南京':[118.767413,32.041544],
        '无锡':[120.301663,31.574729],
        '徐州':[117.184811,34.261792],
        '常州':[119.946973,31.772752],
        '南通':[120.864608,32.016212],
        '苏州':[120.619585,31.299379],
        '连云港':[119.178821,34.600018],
        '淮安':[119.021265,33.597506],
        '盐城':[120.139998,33.377631],
        '扬州':[119.421003,32.393159],
        '镇江':[119.452753,32.204402],
        '泰州':[119.915176,32.484882],
        '宿迁':[118.275162,33.963008],
        // 安徽
        '安徽省':[117.27,31.86],
        '合肥':[117.283042,31.86119],
        '芜湖':[118.376451,31.326319],
        '蚌埠':[117.363228,32.939667],
        '淮南':[117.018329,32.647574],
        '马鞍山':[118.507906,31.689362],
        '淮北':[116.794664,33.971707],
        '铜陵':[117.816576,30.929935],
        '安庆':[117.043551,30.50883],
        '黄山':[118.317325,29.709239],
        '滁州':[118.316264,32.303627],
        '阜阳':[115.819729,32.896969],
        '宿州':[116.984084,33.633891],
        '六安':[116.507676,31.752889],
        '亳州':[115.782939,33.869338],
        '池州':[117.489157,30.656037],
        '宣城':[118.757995,30.945667],
        // 河北
        '河北省':[114.48,38.03],
        '石家庄':[114.48,38.03],
        '唐山':[118.02,39.63],
        '秦皇岛':[119.57,39.95],
        '邯郸':[114.47,36.6],
        '邢台':[114.48,37.05],
        '保定':[115.48,38.85],
        '张家口':[114.87,40.82],
        '承德':[117.93,40.97],
        '沧州':[116.83,38.33],
        '廊坊':[116.7,39.53],
        '衡水':[115.72,37.72],
        // 山西
        '山西省':[112.53,37.87],
        '太原':[112.53,37.87],
        '大同':[113.3,40.12],
        '阳泉':[113.57,37.85],
        '长治':[113.08,36.18],
        '晋城':[112.83,35.52],
        '朔州':[112.43,39.33],
        '晋中':[112.74,37.7],
        '运城':[110.97,35.03],
        '忻州':[112.73,38.42],
        '临汾':[111.5,36.08],
        '吕梁':[111.13,37.52],
        // 黑龙江
        '黑龙江省':[126.63,45.75],
        '哈尔滨':[126.63,45.75],
        '齐齐哈尔':[123.97,47.33],
        '鹤岗':[130.3,47.33],
        '鸡西':[130.97,45.3],
        '双鸭山':[131.17,46.65],
        '大庆':[125.03,46.58],
        '伊春':[128.92,47.73],
        '佳木斯':[130.35,46.83],
        '七台河':[130.83,45.82],
        '牡丹江':[129.58,44.6],
        '黑河':[127.53,50.22],
        '绥化':[127,46.63],
        '大兴安岭地区':[124.71,52.34],
        // 福建
        '福建省':[119.3,26.08],
        '福州':[119.3,26.08],
        '厦门':[118.1,24.46],
        '莆田':[119,25.44],
        '三明':[117.61,26.23],
        '泉州':[118.58,24.93],
        '漳州':[117.35,24.52],
        '南平':[118.16,26.65],
        '龙岩':[117.01,25.12],
        '宁德':[119.52,26.65],
        // 山东
        '山东省':[117,36.65],
        '济南':[117,36.65],
        '青岛':[120.33,36.07],
        '淄博':[118.05,36.78],
        '枣庄':[117.57,34.86],
        '东营':[118.49,37.46],
        '烟台':[121.39,37.52],
        '潍坊':[119.1,36.62],
        '济宁':[116.59,35.38],
        '泰安':[117.13,36.18],
        '威海':[122.1,37.5],
        '日照':[119.46,35.42],
        '临沂':[118.35,35.05],
        '德州':[116.29,37.45],
        '聊城':[115.97,36.45],
        '滨州':[118.03,37.36],
        '菏泽':[115.47,35.25],
        // 湖南
        '湖南省':[113,28.21],
        '长沙':[113,28.21],
        '株洲':[113.16,27.83],
        '湘潭':[112.91,27.87],
        '衡阳':[112.61,26.89],
        '邵阳':[111.5,27.22],
        '岳阳':[113.09,29.37],
        '常德':[111.69,29.05],
        '张家界':[110.48,29.13],
        '益阳':[112.33,28.6],
        '郴州':[113,25.79],
        '永州':[111.63,26.22],
        '怀化':[109.95,27.52],
        '娄底':[111.96,27.71],
        '湘西土家族苗族自治州':[109.74,28.31],
        // 海南
        '海南省':[110.35,20.02],
        '海口':[110.35,20.02],
        '三亚':[109.51,18.25],
        '三沙':[112.35,16.83],
        '儋州':[109.58,19.52],
        '五指山':[109.52,18.78],
        '琼海':[110.46,19.25],
        '文昌':[110.72,19.61],
        '万宁':[110.39,18.8],
        '东方':[108.64,19.09],
        '定安县':[110.31,19.68],
        '屯昌县':[110.1,19.36],
        '澄迈县':[110,19.75],
        '临高县':[109.69,19.91],
        '白沙黎族自治县':[109.44,19.23],
        '昌江黎族自治县':[109.03,19.25],
        '乐东黎族自治县':[109.17,18.73],
        '陵水黎族自治县':[110.02,18.48],
        '保亭黎族苗族自治县':[109.7,18.64],
        '琼中黎族苗族自治县':[109.83,19.05],
        // 云南
        '云南省':[102.73,25.04],
        '昆明':[102.73,25.04],
        '曲靖':[103.79,25.51],
        '玉溪':[102.52,24.35],
        '保山':[99.17,25.11],
        '昭通':[103.7,29.32],
        '丽江':[100.25,26.86],
        '普洱':[101.03,23.07],
        '临沧':[100.09,23.89],
        '楚雄彝族自治州':[101.54,25.01],
        '红河哈尼族彝族自治州':[102.42,23.35],
        '文山壮族苗族自治州':[104.24,23.37],
        '西双版纳傣族自治州':[100.80,22.00],
        '大理白族自治州':[100.19,25.69],
        '德宏傣族景颇族自治州':[98.58,24.44],
        '怒江傈僳族自治州':[98.85,25.85],
        '迪庆藏族自治州':[99.71,27.83],
        // 世界
        '美国': [-73.97622, 40.757498], // 纽约
        '加拿大': [-109.404347, 60.638178],
        '澳大利亚': [137.708144, -25.328065],
        // '中国': [116.512885, 39.847469],
        '捷克': [116.413384, 39.910925],
        '新加坡': [103.413384, 1.910925],
        '阿富汗': [69.132386, 34.739287], // 阿富汗
        '安哥拉': [13.285773, -8.748538], // 安哥拉
        '阿尔巴尼亚': [19.809499, 41.389924], // 阿尔巴尼亚
        '阿根廷': [-64.388276, -31.379492], // 阿根廷-科尔多瓦
        '阿拉伯联合酋长国': [54.662609, 24.390891], // 阿拉伯联合酋长国-阿布扎比
        '奥地利': [16.373532, 48.209137], // 奥地利-维也纳
        '阿塞拜疆共和国': [49.867851, 40.409897], // 阿塞拜疆共和国-巴库
        '比利时': [4.342799, 50.85052], // 比利时
        '贝宁': [2.626232, 6.499347], // 贝宁-波多诺伏
        '布基纳法索': [-1.521672, 12.375667], // 布基纳法索-瓦加杜古
        '孟加拉人民共和国': [90.410568, 23.813179], // 孟加拉人民共和国 - 达卡
        '保加利亚': [23.318705, 42.69792], // 保加利亚-索非亚
        '巴哈马': [-73.562575, 40.655271], // 巴哈马-拿骚
        '南斯拉夫社会主义联邦共和国': [18.423339, 43.796617], // 黑塞哥维那-萨拉热窝
        '白俄罗斯': [27.564451, 53.975825], // 白俄罗斯-明克斯
        '伯利兹': [12.849472, -4.571506], // 中美洲国家伯利兹-贝尔莫潘
        '百慕大群岛': [-86.054972, 40.038827], // 百慕大群岛-哈密尔顿
        '玻利维亚': [-78.332036, 22.082519], // 玻利维亚-哈密尔顿
        '巴西': [-47.888777, -15.791724], // 巴西-巴西利亚
        '文莱': [114.951828, 4.948475], // 文莱-斯里巴加湾市
        '不丹王国': [89.647324, 27.476933], // 不丹王国-廷布
        '博茨瓦纳': [25.967078, -24.62583], // 博茨瓦纳-哈博罗内
        '中非共和国': [18.557903, 4.396116], // 中非共和国-班吉
        '瑞士': [7.44716, 46.950139], // 瑞士-伯尔尼  Switzerland
        '智利': [-70.693344, 19.48165], // 智利-圣地亚哥     Chile
        '科特迪瓦': [-5.255454, 6.826119], // 亚穆苏克罗-科特迪瓦 Ivory Coast
        '喀麦隆': [11.502655, 3.852758], // 喀麦隆-雅温得   Cameroon
        '刚果民主共和国': [15.2495, -4.422756], // 刚果民主共和国 -金沙萨   Democratic Republic of the Congo
        '刚果共和国': [15.240923, -4.263634], // 刚果共和国-布拉柴维尔   Republic of the Congo
        '哥伦比亚共和国': [-74.074104, 4.715315], // 哥伦比亚共和国-波哥大    Colombia
        '哥斯达黎加共和国': [-90.871819, 14.023867], // 哥斯达黎加共和国-圣何塞    Costa Rica
        '古巴共和国': [-82.366883, 23.119708], // 古巴共和国- 哈瓦那   Cuba
        '北塞浦路斯': [33.380839, 35.184858], // 北塞浦路斯土耳其共和国-尼科西亚   Northern Cyprus
        '塞浦路斯': [33.380264, 35.183442], // 塞浦路斯-尼科西亚    Cyprus
        '捷克共和国': [14.437258, 50.078142], // 捷克共和国-布拉格    Czech Republic
        '德国': [13.40498, 52.521199], // 德国-柏林  Germany
        '吉布提共和国': [43.146919, 11.573827], // 吉布提- 吉布提市   Djibouti
        '丹麦': [12.431735, 55.665973], // 丹麦-哥本哈根  Denmark
        '多米尼加共和国': [-80.245123, 22.580836], // 多米尼加共和国-圣多明各  Dominican Republic
        '阿尔及利亚': [3.058874, 36.755571], // 阿尔及利亚-阿尔及尔    Algeria
        '厄瓜多尔': [-78.467263, -0.179206], // 厄瓜多尔-基多   Ecuador
        '埃及': [31.236287, 30.045171], // 埃及-开罗      Egypt
        '厄立特里亚': [38.925716, 15.324804], // 厄立特里亚-阿斯马拉  Eritrea
        '西班牙': [-3.703414, 40.419467], // 西班牙-马德里 Spain
        '爱沙尼亚': [24.75379, 59.439569], // 爱沙尼亚共和国 -塔林        Estonia
        '埃塞俄比亚': [38.753839, 8.986474], // 埃塞俄比亚联邦民主共和国-亚的斯亚贝巴  Ethiopia
        '芬兰': [24.935506, 60.173495], // 芬兰-赫尔辛基   Finland
        '斐济': [178.450079, -18.122335], // 斐济共和国-苏瓦    Fiji
        '马尔维纳斯群岛': [-57.940098, -51.615196], // 马尔维纳斯群岛- (阿根廷港)斯坦利   Falkland Islands
        '法国': [2.333696, 48.865244], //  法兰西共和国-巴黎   France
        '加蓬': [9.495768, 0.436579], // 加蓬-利伯维尔  Gabon
        '英国': [-0.130058, 51.508604], // 英国-伦敦     United Kingdom
        '格鲁吉亚': [44.827351, 41.71589], // 格鲁吉亚-第比利斯   Georgia
        '加纳': [-0.188114, 5.604581], // 加纳-阿克拉    Ghana
        '几内亚': [-13.577316, 9.644511], // 几内亚-科纳克里  Guinea
        '冈比亚': [-16.582383, 13.457299], // 冈比亚   班珠尔 --Gambia
        '几内亚比绍': [-15.619766, 11.885767], // 几内亚比绍 -比绍    Guinea Bissau
        '赤道几内亚': [8.736346, 3.749414], // 赤道几内亚   -马拉博     Equatorial Guinea
        '雅典': [23.72821, 37.9846], // 希腊-雅典   Greece
        '格陵兰': [-51.573608, 64.213084], // 格陵兰-努克   Greenland
        '危地马拉': [-90.543513, 14.649067], // 危地马拉-危地马拉城   Guatemala
        '圭亚那': [-58.140752, 6.803865], // 圭亚那-乔治敦  French Guiana
        '圭亚那合作共和国': [-58.149951, 6.81306], // 圭亚那合作共和国    Guyana
        '洪都拉斯共和国': [-87.253756, 14.044503], // 洪都拉斯共和国 -特古西加尔巴  Honduras
        '克罗地亚': [15.974196, 45.812166], // 克罗地亚-萨格勒布  Croatia
        '海地': [-72.307002, 18.595629], // 海地-太子港    Haiti
        '匈牙利': [19.04196, 47.498109], // 匈牙利-布达佩斯    Hungary
        '印度尼西亚': [106.870937, -6.240893], // 印度尼西亚-雅加达   Indonesia
        '印度': [77.206503, 28.62928], // 印度  -新德里   India
        '爱尔兰': [-6.259735, 53.350324], // 爱尔兰共和国-都柏林   Ireland
        '伊朗': [51.388399, 35.6899], // 伊朗-德黑兰   Iran
        '伊拉克': [44.363655, 33.314606], // 伊拉克-巴格达   Iraq
        '冰岛': [-21.859781, 64.099918], // 冰岛共和国-雷克雅未克   Iceland
        '以色列': [35.21141, 31.77102], // 以色列-耶路撒冷   Israel
        '意大利': [12.491267, 41.904612], // 意大利 -罗马  Italy
        '牙买加': [140.433549, -36.466221], // 牙买加-金斯敦  Jamaica
        '约旦': [35.927003, 31.946341], // 约旦-安曼     Jordan
        '日本': [139.713657, 35.707004], // 日本-东京   Japan
        '哈萨克斯坦': [71.470572, 51.160655], // 哈萨克斯坦-阿斯塔纳   Kazakhstan
        '肯尼亚': [36.820997, -1.291346], // 肯尼亚-内罗毕   Kenya
        '吉尔吉斯': [74.569345, 42.874887], // 吉尔吉斯共和国-比什凯克市   Kyrgyzstan
        '柬埔寨': [104.891769, 11.545102], // 柬埔寨-金边  Cambodia
        '韩国': [126.986407, 37.536804], // 韩国-首尔   South Korea
        '科索沃共和国': [21.163778, 42.663444], // 科索沃共和国-普里什蒂纳   Kosovo
        '科威特': [47.977439, 29.376031], // 科威特-科威特城 Kuwait
        '老挝': [102.632451, 17.975794], // 老挝-万象  Laos
        '黎巴嫩': [35.500052, 33.89439], // 黎巴嫩-贝鲁特  Lebanon
        '利比里亚': [-10.761016, 6.291152], // 利比里亚-蒙罗维亚
        '利比亚': [13.19135, 32.887237], // 利比亚-的黎波里   Libya
        '斯里兰卡': [79.865104, 6.909415], // 斯里兰卡-科伦坡  Sri Lanka
        '莱索托': [29.085487, -29.04088], // 莱索托-马塞卢   Lesotho
        '立陶宛': [25.279069, 54.687457], // 立陶宛-维尔纽斯  Lithuania
        '卢森堡': [6.131308, 49.613029], // 卢森堡-卢森堡市 Luxembourg
        '拉脱维亚': [24.105101, 56.949378], // 拉脱维亚-里加 Latvia
        '摩洛哥': [-6.862605, 33.977609], // 摩洛哥-拉巴特 Morocco
        '摩尔多瓦': [28.858505, 47.012344], // 摩尔多瓦 -基希讷乌Moldova
        '马达加斯加': [47.508608, -18.867016], // 马达加斯加-塔那那利佛 Madagascar
        '墨西哥': [-99.134543, 19.433793], // 墨西哥   Mexico
        '马其顿共和国': [21.427289, 41.997997], // 马其顿共和国-斯科普里   Macedonia
        '马里共和国': [-8.003581, 12.640388], // 马里共和国 -巴马科   Mali
        '缅甸': [96.077119, 19.763943], // 缅甸-内比都   Myanmar
        '黑山共和国': [19.261583, 42.435497], //  黑山共和国-波德戈里察  Montenegro
        '蒙古': [106.908677, 47.915632], // 蒙古-乌兰巴托  Mongolia
        '莫桑比克': [32.602247, -25.890353], // 莫桑比克-马普托   Mozambique
        '毛里塔尼亚': [-15.964452, 18.0745], // 毛里塔尼亚-努瓦克肖特   Mauritania
        '马拉维': [33.774057, -13.961542], // 马拉维-利隆圭   Malawi
        '马来西亚': [101.681865, 3.136134], // 马来西亚-吉隆坡  Malaysia
        '纳米比亚': [17.034567, -22.555179], // 纳米比亚-温得和克   Namibia
        '新喀里多尼亚': [166.449312, -22.251664], // 新喀里多尼亚-努美阿   New Caledonia
        '尼日尔': [2.118056, 13.516354], // 尼日尔共和国-尼亚美   Niger
        '尼日利亚': [7.459498, 9.126437], // 尼日利亚-阿布贾   Nigeria
        '尼加拉瓜共和国': [-86.236749, 12.115559], // 尼加拉瓜共和国-马那瓜  Nicaragua
        '荷兰': [4.89354, 52.370649], // 荷兰-阿姆斯特丹   Netherlands
        '挪威': [4.89354, 52.370649], // 挪威-奥斯陆   Norway
        '尼泊尔': [85.320511, 27.711], // 尼泊尔-加德满都   Nepal
        '新西兰': [174.761827, -41.291661], // 新西兰-惠灵顿   New Zealand
        '阿曼': [58.405562, 23.587133], // 阿曼-马斯喀特   Oman
        '巴基斯坦伊斯兰': [73.076186, 33.714975], // 巴基斯坦伊斯兰共和国-伊斯兰堡   Pakistan
        '巴拿马': [-79.401974, 9.102657], // 巴拿马-巴拿马城   Panama
        '秘鲁': [-77.042548, -12.044223], // 秘鲁-利马  Peru
        '菲律宾': [120.985715, 14.603576], // 菲律宾-马尼拉  Philippines
        '巴布亚新几内亚': [147.27892, -9.465948], // 巴布亚新几内亚-莫尔兹比港  Papua New Guinea
        '波兰': [21.021333, 52.232842], // 波兰-华沙   Poland
        '波多黎各': [120.809359, 17.750942], // 波多黎各-圣胡安   Puerto Rico
        '北朝鲜': [125.760512, 39.041685], // 北朝鲜-平壤   North Korea
        '葡萄牙': [-9.161365, 38.768409], // 葡萄牙-里斯本   Portugal
        '巴拉圭': [-57.576213, -25.260342], // 巴拉圭-亚松森   Paraguay
        '卡塔尔': [51.531551, 25.286355], // 卡塔尔-多哈   Qatar
        '罗马尼亚': [51.531551, 25.286355], // 罗马尼亚-布加勒斯特   Romania
        '俄罗斯': [37.621612, 55.758257], // 俄罗斯联邦-莫斯科   Russia
        '卢旺达': [30.102346, -1.969667], // 卢旺达-基加利   Rwanda
        '西撒哈拉': [-13.233061, 27.246935], // 西撒哈拉-阿尤恩   Western Sahara
        '沙特阿拉伯': [46.672152, 24.714184], // 沙特阿拉伯 -利雅得  Saudi Arabia
        '南苏丹': [31.586576, 4.891962], // 南苏丹-朱巴   Sudan South
        '苏丹': [32.560519, 15.501806], // 苏丹-喀土穆   Sudan
        '塞内加尔': [-17.367747, 14.764454], // 塞内加尔-达喀尔   Senegal
        '所罗门群岛': [159.981803, -9.43537], // 所罗门-霍尼亚拉   Solomon Islands
        '塞拉利昂': [-13.233425, 8.466744], // 塞拉利昂-弗里敦   Sierra Leone
        '萨尔瓦多': [-89.22758, 13.692121], // 萨尔瓦多-圣萨尔瓦多   El Salvador
        '索马里兰': [44.088511, 9.562318], // 索马里兰-哈尔格萨   Somaliland
        '索马里': [45.317204, 2.047013], // 索马里-摩加迪沙   Somalia
        '塞尔维亚': [20.446144, 44.786894], // 塞尔维亚-贝尔格莱德   Republic of Serbia
        '苏里南共和国': [-55.206128, 5.853474], // 苏里南共和国-帕拉马里博   Suriname
        '斯洛伐克共和国': [17.099623, 48.141697], // 斯洛伐克共和国-布拉迪斯拉发   Slovakia
        '瑞典': [18.058376, 59.327783], // 瑞典- 斯德哥尔摩 Sweden
        '斯威士兰': [31.134648, -26.292261], // 斯威士兰-姆巴巴内   Swaziland
        '叙利亚': [36.274228, 33.521994], // 叙利亚-大马士革   Syria
        '乍得': [15.058995, 12.144253], // 乍得-恩贾梅纳   Chad
        '多哥': [1.244889, 6.219695], // 多哥- 洛美   Togo
        '泰国': [100.451117, 13.724061], // 泰国-曼谷   Thailand
        '塔吉克斯坦': [68.788383, 38.572383], // 塔吉克斯坦-杜尚别   Tajikistan
        '土库曼斯坦': [58.338576, 38.057635], // 土库曼斯坦-阿什哈巴德市   Turkmenistan
        '东帝汶': [125.564669, -8.549475], // 东帝汶-帝力   East Timor
        '特立尼达和多巴哥': [-61.528354, 10.674498], // 特立尼达和多巴哥-西班牙港   Trinidad and Tobago
        '突尼斯': [10.208651, 36.866028], // 突尼斯-突尼斯市   Tunisia
        '土耳其': [32.853705, 39.941552], // 土耳其-安卡拉   Turkey
        '坦桑尼亚': [35.698823, -6.211186], // 坦桑尼亚联合共和国-多多马    United Republic of Tanzania
        '乌干达': [32.581738, 0.352894], // 乌干达-坎帕拉   Uganda
        '乌克兰': [30.512697, 50.452995], // 乌克兰-基辅   Ukraine
        '乌拉圭': [-56.163094, -34.893771], // 乌拉圭-蒙得维的亚  Uruguay
        '乌兹别克斯': [69.247259, 41.313586], // 乌兹别克斯-塔什干市   Uzbekistan
        '委内瑞拉': [-66.90346, 10.492688], // 委内瑞拉-加拉加斯   Venezuela
        '越南': [105.699615, 20.973967], // 越南-河内  Vietnam
        '瓦努阿图': [168.327477, -17.730243], // 瓦努阿图-维拉港   Vanuatu
        '也门': [44.188624, 15.375985], // 也门-萨那  Yemen
        '南非共和国': [18.480216, -33.873348], // 南非共和国- 开普敦  South Africa
        '赞比亚': [28.321954, -15.376648], // 赞比亚-卢萨卡   Zambia
        '津巴布韦': [31.033189, -17.824573] // 津巴布韦-哈拉雷   Zimbabwe
    };

</script>

</html>